home *** CD-ROM | disk | FTP | other *** search
/ Amiga Games: Greatest Hits 1996 / Amiga Games: Greatest Hits 1996.iso / userbox / publicdomain / famelibrary / include / libraries / fame.h < prev    next >
C/C++ Source or Header  |  1996-07-21  |  9KB  |  234 lines

  1. #ifndef LIBRARIES_FAME_H
  2. #define LIBRARIES_FAME_H TRUE
  3. /*
  4. **
  5. **    $VER: FAME.h 3.1
  6. **
  7. **    Standard C definitions for FAME.library
  8. **
  9. **    (C) Copyright 1996 BLOODROCK/tRSi/F-Innovation
  10. **        All Rights Reserved
  11. **
  12. */
  13.  
  14. #ifndef EXEC_LIBRARIES_H
  15. #include <exec/libraries.h>
  16. #endif
  17.  
  18. #ifndef DOS_DOS_H
  19. #include <dos/dos.h>
  20. #endif
  21.  
  22.  
  23. #define  FAMENAME     "FAME.library"
  24. #define  FAMEVERSION  3
  25.  
  26.  
  27. /* FAME Object types */
  28.  
  29. #define FOBJ_FAMEDoorMsg         1
  30. #define FOBJ_FAMEMailHeader      2
  31. #define FOBJ_FAMEMailStat        3
  32. #define FOBJ_FAMEToolPortMsg     4
  33. #define FOBJ_FAMECoProcessPort   5
  34. #define FOBJ_FAMEExternEditor    6
  35. #define FOBJ_FAMEToolNotifyMsg   7
  36. #define FOBJ_FAMEExpansion       8
  37. #define FOBJ_FAMECnfExpansion    9
  38. #define FOBJ_FAMEUser           10
  39. #define FOBJ_FAMEUserKeys       11
  40. #define FOBJ_FAMEUserConf       12
  41. #define FOBJ_FAMECoProcess      13
  42. #define FOBJ_FAMEDestNodes      14
  43. #define FOBJ_FAMEInfoList       15
  44. #define FOBJ_FAMEOnlineMsg      16
  45. #define FOBJ_FAMEOLMString      17
  46.  
  47.  
  48. /* FAMEAllocObject() error codes */
  49. /* (Use DOS/IoErr() to get the error code. May also be ERROR_NO_FREE_STORE) */
  50.  
  51. #define FAOB_UnknownObject  -1   /* Object type out of range */
  52.  
  53.  
  54. /* Possible return codes from FAMEAvailExe() */
  55.  
  56. #define FAE_RESIDENT         3
  57. #define FAE_RESIDENTSYS         2
  58. #define FAE_LOADFILE         1
  59. #define FAE_NOMATCH         0
  60. #define FAE_DATAFILE        -1
  61. #define FAE_NOEBIT        -2
  62. #define FAE_DIRECTORY        -3
  63. #define FAE_ERROR        -4
  64.  
  65.  
  66. /* Flags for FAMENumToStr() and FAMENum64ToStr() */
  67. /* Note: flags marked with "(-)" are not available for FAMENum64ToStr(). */
  68.  
  69. #define    FNSF_HEX           (1L<<0)  /* (-) Output hex string */
  70. #define    FNSF_BIN           (1L<<1)  /* (-) Output binary string */
  71. #define    FNSF_WORD          (1L<<2)  /* (-) Output size WORD */
  72. #define    FNSF_BYTE          (1L<<3)  /* (-) Output size BYTE */
  73. #define    FNSF_LEADINGZEROES (1L<<4)  /* (+) Output leading zeros */
  74. #define    FNSF_LEADINGSIGN   (1L<<5)  /* (+) Add leading numeric system sign */
  75. #define    FNSF_RIGHTFORMAT   (1L<<6)  /* (+) Right formatted output */
  76. #define    FNSF_LEFTFORMAT    (1L<<7)  /* (+) Left formatted output */
  77. #define    FNSF_CENTERFORMAT  (1L<<8)  /* (+) Center formatted output */
  78. #define FNSF_TENDLEFT      (1L<<9)  /* (+) Left tendence center formatting */
  79. #define    FNSF_LOWERCASE     (1L<<10) /* (-) Hex characters lowercase */
  80. #define    FNSF_GROUPING      (1L<<11) /* (+) Separate digit groups */
  81. #define    FNSF_NUMLOCALE     (1L<<12) /* (+) Use numeric Locale group separator */
  82. #define    FNSF_MONLOCALE     (1L<<13) /* (+) Use monetary Locale group separator */
  83. #define FNSF_SIGNED        (1L<<14) /* (+) Handle value as signed number */
  84. #define FNSF_PLUSSIGN      (1L<<15) /* (+) Use "+" char for signed pos. values */
  85. #define FNSF_SWAPSIGNS     (1L<<16) /* (+) Swap "-/+/ " and "#/$/%" positions */
  86.  
  87. #define    FNSB_HEX            0 /* (-) Output hex string */
  88. #define    FNSB_BIN            1 /* (-) Output binary string */
  89. #define    FNSB_WORD           2 /* (-) Output size WORD */
  90. #define    FNSB_BYTE           3 /* (-) Output size BYTE */
  91. #define    FNSB_LEADINGZEROES  4 /* (+) Output leading zeros */
  92. #define    FNSB_LEADINGSIGN    5 /* (+) Add leading numeric system sign */
  93. #define    FNSB_RIGHTFORMAT    6 /* (+) Right formatted output */
  94. #define    FNSB_LEFTFORMAT     7 /* (+) Left formatted output */
  95. #define    FNSB_CENTERFORMAT   8 /* (+) Center formatted output */
  96. #define FNSB_TENDLEFT       9 /* (+) Left tendence center formatting */
  97. #define    FNSB_LOWERCASE     10 /* (-) Hex characters lowercase */
  98. #define    FNSB_GROUPING      11 /* (+) Separate digit groups */
  99. #define    FNSB_NUMLOCALE     12 /* (+) Use numeric Locale group separator */
  100. #define    FNSB_MONLOCALE     13 /* (+) Use monetary Locale group separator */
  101. #define    FNSB_SIGNED        14 /* (+) Handle value as signed number */
  102. #define    FNSB_PLUSSIGN      15 /* (+) Use "+" char for signed pos. values */
  103. #define FNSB_SWAPSIGNS     16 /* (+) Swap "-/+/ " and "#/$/%" positions */
  104.  
  105.  
  106. /* FAME DevInfoList structure */
  107.  
  108. struct FAMEDevInfoList {
  109.    APTR  fdil_Next;         /* next device */
  110.    char  fdil_Name[32];     /* device name including ":" */
  111.    LONG  fdil_DiskType;     /* InfoData->DiskType */
  112.    LONG  fdil_DiskState;    /* InfoData->DiskState */
  113.    LONG  fdil_Size;         /* total size in bytes */
  114.    LONG  fdil_BytesFree;    /* free bytes */
  115. };
  116.  
  117.  
  118. /* FAMEExecuteDir() list (the result you get)
  119.  
  120. This list only contains programs which have been successfully started. */
  121.  
  122. struct FAMEExecuteDirList {
  123.    APTR  fxdl_Next;        /* next started program */
  124.    char  fxdl_FileName[256];    /* name of the launched program */
  125.    ULONG fxdl_ReturnCode;    /* the DOS ReturnCode of the program. */
  126. };                /* If the SYS_Async Tag was specified, */
  127.                 /* fxdl_ReturnCode is always NULL. */
  128.  
  129.  
  130. /* FAMEFile structure returned by FAMELoadFile() */
  131.  
  132. struct FAMEFile {
  133.    APTR  ffil_File;               /* the file image itself */
  134.    BPTR  ffil_FH;                 /* the file's FileHandle
  135.                                      (only valid if FLFF_KEEPFH was set) */
  136.    struct FileInfoBlock ffil_FIB; /* the file's FileInfoBlock */
  137. };
  138.  
  139. /* FAMEPoolFile structure returned by FAMELoadFilePooled() */
  140.  
  141. struct FAMEPoolFile {
  142.    APTR  fpof_Next;               /* initialized to NULL, always ignored.
  143.                                      free to use by your program !       */
  144.    APTR  fpof_Prev;               /* initialized to NULL, always ignored.
  145.                                      free to use by your program !       */
  146.    APTR  fpof_File;               /* the file image itself */
  147.    BPTR  fpof_FH;                 /* the file's FileHandle
  148.                                      (only valid if FLFF_KEEPFH was set) */
  149.    struct FileInfoBlock fpof_FIB; /* the file's FileInfoBlock */
  150. };
  151.  
  152.  
  153. /* FAMEDosMove() flags */
  154.  
  155. #define FDMF_NODELETE    (1l<<0)  /* copy instead moving */
  156. #define FDMF_KEEPDATA    (1l<<1)  /* keep comment & protection bits */
  157.                                   /* (except the archive bit) */
  158.  
  159. #define FDMB_NODELETE         0   /* copy instead moving */
  160. #define FDMB_KEEPDATA         1   /* keep comment & protection bits */
  161.                                   /* (except the archive bit) */
  162.  
  163.  
  164. /* FAMELoadFile() and FAMELoadFilePooled() flags */
  165.  
  166. #define    FLFF_KEEPFH      (1L<<0)  /* don't close the file */
  167.  
  168. #define    FLFB_KEEPFH           0   /* don't close the file */
  169.  
  170.  
  171. /* FAMEPostFile() flags */
  172.  
  173. #define FPFF_NODELETE     (1L<<0)  /* don't delete source file anyway */
  174. #define FPFF_REPLACE     (1L<<1)  /* delete/replace existing file(s) */
  175. #define FPFF_CHECKONLY     (1L<<2)  /* Only test if the file already exists */
  176. #define FPFF_KEEPDATA     (1L<<3)  /* Keep source file comment and protection */
  177.                                   /* bits (except A,R,D) */
  178.  
  179. #define FPFB_NODELETE          0   /* don't delete source file anyway */
  180. #define FPFB_REPLACE          1   /* always Post file */
  181. #define FPFB_CHECKONLY          2   /* Only test if the file already exists */
  182. #define FPFB_KEEPDATA          3   /* Keep source file comment and protection */
  183.                                   /* bits (except A,R,D) */
  184.  
  185.  
  186. /* FAMEUlPathList structure */
  187.  
  188.    struct FAMEUlPathList {
  189.     APTR    fupl_Next;    /* Ptr. to next UploadPathList entry */
  190.     APTR    fupl_Prev;    /* Ptr. to previous UploadPathList entry */
  191.     char    fupl_Path[102];    /* full path name */
  192.     ULONG    fupl_Internal;    /* FAME.library internal; do not use! */
  193. };
  194.  
  195.  
  196. /* Library base */
  197.  
  198. /* Fields declared as private ARE private. Do not use 'em. They contain
  199.    some internal data structures which don't contain anything you may
  200.    use to hack the BBS. It isn't useful for you anyway. Some BBS
  201.    functions give you informations from these data fields, if your
  202.    program may have use of it. So do not ever read these fields.
  203.    Also, *never* write anything to the library base. */
  204.  
  205. struct FAMELibrary {
  206.    struct Library LibNode; /* Standard library node */
  207.  
  208.    /* LIBRARY PRIVATE */
  209.  
  210.    UBYTE FAME_Flags;         /* see also: */
  211.    UBYTE FAME_pad;           /* "sample.library.asm", documented in the */
  212.    BPTR  FAME_SegList;       /* Amiga ROM Kernel Reference Manual: Libraries */
  213.  
  214.    /* PUBLIC FIELDS */       /* may be READ from your program */
  215.  
  216.    APTR  FAME_DOSBase;       /* dos.library base V37 */
  217.    APTR  FAME_SysBase;       /* exec base for faster access */
  218.    APTR  FAME_LocaleBase;    /* locale.library V38 base address */
  219.  
  220.    /* LIBRARY PRIVATE */
  221.  
  222.    LONG  FAME_Private2;
  223.    BYTE  FAME_Private3[50];
  224.    WORD  FAME_Private4;
  225.    BYTE  FAME_Private5[40];
  226.  
  227.    /* PUBLIC FIELDS */
  228.  
  229.    APTR  FAME_TimerBase;      /* timer.device library base */
  230.    APTR  FAME_IconBase;       /* icon.library V37 base address */
  231. };
  232.  
  233. #endif  /* LIBRARIES_FAME_H */
  234.